iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0

希望在經過三十天的說明,您會跟我一樣,認同gt是一個相當好用的package。gtmade from code概念使得我們可以Python的生態圈下,完整地由資料分析走到報告呈現。

{gt}相比於gt起步較早,開發團隊正努力想要引進所有{gt}的功能,即便是在這三十天內,也進行了多次改版與新增功能,讓本系列文剛完成就略顯過時……

如果您在製作表格時缺乏靈感,建議可以欣賞今年 Posit table contest的參賽者作品,相信會讓您驚嘆不已。此外,表格僅是視覺化的呈現元素之一,在R語言中您可以搭配{gt}{ggplot2}來將圖表與表格做完美的結合。而在Python生態圈內,您可以參考Python版本的{ggplot2}plotnine,其使用方式其實相當類似gt。可以這麼說:gt以表格文法製表,而plotnine以圖表文法繪圖。建議您也可以參考今年 Posit plotnine plotting contest的參賽者作品,或許可以激盪出更有創意的點子。

最後,歡迎走過路過gt的諸位,可以多多給我們建議或是提交PR。在此,先感謝諸位的幫忙,祝coding順利!

Q&A

此處收集一些開發gt與編寫本系列文時,遇到看到想到的一些問題,希望能對您有幫助。

支援的DataFrame格式?

目前gt僅支援Pandas及Polars DataFrame(Pyarrow?)。開發團隊正在思考導入ibisnarwhals來作為各種DataFrame的中介層,或許能因此大幅提升gt的渲染速度。

由於narwhals的主要維護者Marco Gorelli也是gt的使用者,且narwhals使用Polars expression作為中介語言,效率非常好。個人覺得gt導入narwhals的機會較高。

如何輸出表格?

詳見[Day05]說明。

使用Polars來操作gt好像很方便,但是我只會Pandas耶?

Polars有提供很完整的文件說明來幫助使用者學習。此外,小弟於初學Polars時,有寫了一個ezp2p repo,說明如何於Pandas中重現Polars的操作,或許對您有幫助。

應該在DataFrame上整理好欄位還是使用gt所提供的GT.fmt_*()GT.cols_*()來改變表格呈現方式呢?

兩個都是不錯的方法,但一般來說,使用gt所提供的功能應該會較為輕鬆。例如想調整表格欄位順序的話,可以直接使用多種GT.cols_move*()函數來達成。此外在製表時,我們處於「大概」知道想要的樣式但需要不斷調整的情況,此時如果DataFrame是固定不變的會比較容易操作。

新欄位名稱不符合Python命名原則時,如何使用GT.cols_label()重新命名?

詳見[Day10]說明。

如何調整xxx的樣式。

詳見[Day08][Day09]說明。使用原則依序為:

  • 如果想調整顏色、字型、線條時,優先使用GT.tab_style()
  • 其它各種調整則可嘗試使用GT.tab_options()GT.opt_*()
  • 最後可以試試自己添加CSS,並使用html()來呈現。

如果上述調整皆無法達成需求的話,煩請回報至GitHub讓我們知道您的需求。

style.borders()在Windows中失效?

的確有時候會出現這樣的情況,但目前開發團隊還沒有找到徹底的解決方案。如果有遇到類似的情形,麻煩請將使用環境回報至GitHub,讓我們比較容易找出原因。

官網的範例都太簡單了,有沒有複雜一點且又有說明的例子?

詳見[Day22][Day23]說明。這個例子是小弟在今年 Posit table contest中獲得「"The Best Table that Uses Polars"」的作品,希望對您有一些幫助。

未來是否會有interactive型態的表格?

Maybe!這是一個很常被詢問的問題,其實開發團隊一直試圖探索各種可能的解決方案……

issue回應以及版本更新過慢?

很抱歉讓您有這種感受,請體諒開發團隊每週能投入的精力時間有限,歡迎您一起加入維護的行列:)。


上一篇
[Day29] - 如何與FastHTML整合 - 動態表格
系列文
眾裏尋它:Python表格利器Great Tables30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言